--  1. Простой запрос
SELECT * FROM users;
-- Этот запрос выбирает все столбцы из таблицы `users`.

-- ------------------------------------------------------------------

--  2. Выбор определенных столбцов
SELECT id, name, email FROM users;
-- Этот запрос выбирает только столбцы `id`, `name` и `email` из таблицы `users`.

-- ------------------------------------------------------------------

--  3. Условие WHERE
SELECT id, name, email FROM users WHERE age > 30;
-- Этот запрос выбирает столбцы `id`, `name` и `email` из таблицы `users`, где возраст больше 30 лет.

-- ------------------------------------------------------------------

--  4. Сортировка результатов
SELECT id, name, email FROM users WHERE age > 30 ORDER BY name ASC;
-- Этот запрос выбирает столбцы `id`, `name` и `email` из таблицы `users`, где возраст больше 30 лет, и сортирует результаты по имени в порядке возрастания.

-- ------------------------------------------------------------------

--  5. Ограничение количества строк
SELECT id, name, email FROM users WHERE age > 30 ORDER BY name ASC LIMIT 10;
-- Этот запрос выбирает столбцы `id`, `name` и `email` из таблицы `users`, где возраст больше 30 лет, сортирует результаты по имени в порядке возрастания и ограничивает результат десятью строками.

-- ------------------------------------------------------------------

--  6. Объединение таблиц (JOIN)
SELECT users.id, users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
-- Этот запрос объединяет таблицы `users` и `orders` по полю `user_id` и выбирает столбцы `id` и `name` из таблицы `users` и столбец `amount` из таблицы `orders`.

-- ------------------------------------------------------------------

--  7. Группировка результатов (GROUP BY) и агрегатные функции
SELECT department, COUNT(*) AS num_employees, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
-- Этот запрос группирует результаты по столбцу `department` и считает количество сотрудников и среднюю зарплату в каждом отделе.

-- ------------------------------------------------------------------

--  8. Использование подзапроса
SELECT name, email
FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
-- Этот запрос выбирает столбцы `name` и `email` из таблицы `users` для пользователей, у которых есть заказы на сумму больше 100.

-- ------------------------------------------------------------------

--  9. Запрос с функцией
SELECT UPPER(name) AS upper_name, LENGTH(name) AS name_length
FROM users;
-- Этот запрос выбирает имена пользователей в верхнем регистре и длину имен из таблицы `users`.

-- ------------------------------------------------------------------

-- 10. Условие LIKE для поиска по шаблону
SELECT id, name, email
FROM users
WHERE name LIKE 'A%';
-- Этот запрос выбирает столбцы `id`, `name` и `email` из таблицы `users` для пользователей, чьи имена начинаются с буквы 'A'.
